Super-emoticons

ABSTRACT

Techniques are described for generating and displaying “super-emoticons”. Super-emoticons are similar to smileys in that they may be generated in response to a participant in a textual conversation entering a specific sequence of textual characters. However, super-emoticons differ from smileys in that super-emoticons are programmed to demonstrate more sophisticated behaviors, including but not limited to: moving out of the text insertion location, interacting with other display elements, interacting with users, changing appearance based on context, exhibiting randomly selected behaviors, and making use of information from services.

FIELD OF THE INVENTION

The present invention relates to messaging systems and, morespecifically, to generating super-emoticons using a messaging system.

BACKGROUND

An emoticon is a sequence of printable characters, or a small image,intended to represent a human facial expression and convey an emotion.Emoticons were created to help people express their emotions in textmessaging. The most common are :) ;) and :(

Most modern messengers (e.g. instant messaging systems) will replacethese simple text emoticons with more elaborate and even animated inline“smileys”. When a messenger system replaces a text emoticon with aninline smiley, the inline smiley is displayed at the location, withinthe conversation window, in which the text emoticon would have beendisplayed. The location in which the text emoticon would have beendisplayed is referred to herein as the “text emoticon location”.

Similar to text emoticons, once a smiley is displayed, the position ofthe smiley is fixed relative to the other elements of the conversation.For example, any scroll operation that affects the contents of aconversation window has the same effect on both the text and the smileysthat are displayed within the conversation window. In addition, theanimations of animated smileys occur within the confines of the initialdisplay position of the animated smileys. While animated smileys mayyawn, laugh, or even jiggle, they do so without departing from theirinitial display positions.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements and in which:

FIG. 1 is a block diagram that illustrates metadata that is associatedwith a super-emoticon according to an embodiment of the invention;

FIG. 2 is a flowchart illustrating steps performed by a message systemaccording to an embodiment of the invention; and

FIG. 3 is a block diagram illustrating a computer upon which embodimentsof the invention may be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however,that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

Overview

Techniques are described herein for generating and displaying“super-emoticons”. Super-emoticons are similar to smileys in that theymay be generated in response to a participant in a textual conversationentering a specific sequence of textual characters. However,super-emoticons differ from smileys in that super-emoticons areprogrammed to demonstrate more sophisticated behaviors, including butnot limited to: moving out of the text emotion location, interactingwith other display elements, interacting with users, changing appearancebased on context, exhibiting randomly selected behaviors, and making useof information from external services.

Specifying a Super-Emoticon

Super-emoticons are specified in the same manner as conventionalemoticons. Specifically, each super-emoticon is associated with aparticular string of one or more textual characters. The string oftextual characters with which a super-emoticon is associated is referredto herein as the “trigger string” for the super-emoticon.

A participant in a textual conversation specifies a super-emoticon byentering the trigger string of the super-emoticon in the text inputinterface of a message system client. Text entered into the text inputinterface of the message system client is sent to a message systemserver that is responsible for sending the text to the conversationwindows of all message system clients that are participating in thetextual conversation.

However, prior sending the text to the conversation windows of theparticipating message system clients, the message system serverdetermines whether the text includes any trigger strings forsuper-emoticons. In response to detecting that the text includes atrigger string for a super-emoticon, the message system server generatesthe super-emoticon on the participating message system clients, insteadof displaying the trigger string in the respective conversation windows.

According to one embodiment, the trigger string for super-emoticon for agiven emotion is textually similar to the trigger string for aconventional smiley for the same emotion. For example, in oneembodiment, the trigger string for a super-emoticon is created bycombining a “common augmenter” with the trigger string of thecorresponding convention emoticon. In an embodiment that uses a commonaugmenter, the same symbol (e.g., “!”) can be applied to the triggerstrings of multiple standard emoticons to unlock hidden animations,etc., thereby producing corresponding super-emoticons. Thus, the triggerstring for the super-emoticon for happiness may be :-)! Similarly, thetrigger string for sadness may be :-(! In these examples, theexclamation point serves as a common augmenter that is appended to thetrigger strings of conventional emoticons. However, different symbols,characters or strings may be used in alternative embodiments. Further,the common augmenter may be used as a prefix, a suffix, or both, to thetrigger string of the conventional smiley.

Instead of or in addition to trigger strings, the message system clientmay provide additional controls for specifying super-emoticons. Forexample, a message system client may include a drop-down or pop-upwindow that displays images of super-emoticons. Selecting an image fromthe window may send a message to the message system server to instructthe message system server to generate the corresponding super-emoticonon the participating message system clients. Other controls forspecifying a super-emoticon may include “hot-keys”, menus, buttons, etc.The techniques described herein are not limited to any particularmechanism for specifying a super-emoticon.

Departing from the Initial Display Position

According to one embodiment, super-emoticons are not confined to aspecific display position. Instead, a super-emoticon may be positionedat and/or move to any location of a screen at which the messengersoftware client is allowed to draw.

For example, a super-emoticon may initially appear at a location otherthan the text emoticon location. The initial display location of thesuper-emoticon may be, for example, any corner of the conversationwindow, or any corner of the screen. The initial display location may bethe center of the screen, with the super-emoticon initially displayed solarge as to take up most of the screen (and then shrinking).

Further, even when the initial appearance of the super-emoticon is atthe text emoticon location, the display location of the super-emoticonmay change relative to the conversation into which the super-emoticon isplaced. For example, a super-emoticon may initially appear at the textemoticon location, and then sprout legs, stand up, and walk off thescreen. While walking off the screen, the super-emoticon may transitionfrom the conversation window, to other parts of the display screenoutside the conversation window, to off the screen completely.

As another example, a super-emoticon might bounce out of an instantmessaging window, smack the screen with a thud, and slide down to thebottom of the monitor. There is virtually no limit with respect to whereon the screen the super-emoticon will initially appear, and where on thescreen the super-emoticon can go.

Interacting with Other Display Elements

According to one embodiment, a super-emoticon is associated with one ormore behaviors. A behavior, in this context, refers to the appearance,actions, and/or interactive functionality of a super-emoticon. In oneembodiment, the behaviors with which a super-emoticon may be associatedinclude behaviors that cause the super-emoticon to interact with theenvironment in which the super-emoticon is displayed. For example, asuper-emoticon may bounce around the screen, push windows around on thescreen, hide user-interface controls (e.g. buttons), etc.

Super-emoticons may also interact with each other. For example, thebehavior of a super-emoticon may hinge on whether another super-emoticonis in the same row. For example, a smiley super-emoticon next to afrowny super-emoticon may result in both emoticons transforming intocartoon ninjas that dual each other in place.

As another example, the “powers” of one super-emoticon may be affectedby what other super-emoticons are present within the same conversationwindow. Thus, a “hero” super-emoticon may simply stay in the textemoticon location until a user enters a “villain” super-emoticon.However, when a “villain” super-emoticon is entered, the hero emoticonmay fly from its initial display location toward the position of thevillain super-emoticon. Once adjacent to the position of the villainsuper-emoticon, the hero super-emoticon may engage in battle with thevillain super-emoticon. While the battle is raging, a user may entertext to create a “damsel” super-emoticon. The presence of the damselsuper-emoticon within the conversation window may give the herosuper-emoticon more powers to use against the villain. In addition, thevillain may attempt to kidnap the damsel super-emoticon.

As another example, one super-emoticon may be designed to “merge” withanother super-emoticon, where the merging of the super-emoticontransforms the two super-emoticons into a single super-emoticon that hasbehaviors of both of the two merged super-emoticons and/or behaviorsdifferent from either of the two merged super-emoticons. Once generatedwithin a conversation, a super-emoticon that is designed to merge withanother super-emoticon may remain in its initial state until anothersuper-emoticon is generated within the same conversation. The generationof the other super-emoticon triggers the “merging” behavior of the firstsuper-emoticon, causing the merging to occur.

According to one embodiment, a super-emoticon with a “merge” behaviormay produce different results depending on the super-emoticon with whichit merges. For example, a merger between super-emoticon A andsuper-emoticon B may produce a super-emoticon X. However, a mergerbetween super-emoticon A with super-emoticon C may produce asuper-emoticon Y, where super-emoticon Y exhibits different behaviorsthat super-emoticon X.

In addition to interacting with other super-emoticons, super-emoticonsmay also interact with non-animated screen elements. For example, asuper-emoticon may walk over to a convention smiley that appears in theconversation window, and then shoot or otherwise destroy theconventional smiley. As another example, an “angry” super-emoticon maywalk over to words that appear in the same conversation window, grab thewords, and then scramble the words (or the letters within the words).

Random and Changing Behaviors

According to one embodiment, the behavior of super-emoticons may beunpredictable. For example, a single super-emoticon may be associatedwith five distinct behaviors. When a user enters the trigger string forthe super-emoticon, a pseudo-random number generator may be used by themessage system to randomly select between the five behaviors. Once abehavior of selected, a super-emoticon that exhibits the selectedbehavior is generated by the messaging clients participating in theconversation.

According to one embodiment, the behavior of a super-emoticon may changeover time. For example, a messenger system may associate new behaviorswith existing super-emoticons, and phase out older behaviors. Users maysubscribe and/or pay for the use of super-emoticons on a super-emoticonbasis, or on a behavior basis. Thus, a user may purchase new behaviorsfor the super-emoticons that the user is already using.

The behavior of a super-emoticon may also change based on how long auser has been using the super-emoticon. For example, on the day a usersubscribes to a particular super-emoticon, the behavior of thesuper-emoticon may be quick, and the appearance of the super-emoticonmay be youthful. Over time, the behavior of the super-emoticon may slow,and the appearance of the super-emoticon may become elderly.

Interacting with Users

As mentioned above, conventional emoticons sent by different users in acommon conversation area can form super-emoticons. Consequently, thesuper-emoticon experience is not limited to one person generatingseveral emoticons that become special. The serendipitous nature ofsuper-emoticons emerging from normal emoticons (and phatic conversation)is more noticeable when the conditions that trigger the transformationinvolve multiple actors.

According to one embodiment, user interface components are integratedinto super-emoticons to allow interactions between super-emoticons andusers. For example, a “fly” super-emoticon may buzz around a user'sscreen until a user successfully clicks on the fly. When a usersuccessfully clicks on the fly, the fly may “splat” and then graduallyfade from the screen.

As another example, during a duel between two super-emoticons, a usermay be able to interact with a user interface device to change the speedand/or power of a super-emoticon. For example, a super-emoticon mayfight faster the faster a user presses certain keys on a keyboard. Asanother example, a super-emoticon may block better the faster a usermoves a mouse.

As another example, a super-emoticon may interact with a user byfollowing the cursor that is controlled by a mouse or trackball that isbeing manipulated by the user. In fact, super-emoticons may be generatedwith game logic, and code that detects various types of userinteractions to implement a game. The system managing the conversationmay include logic for tracking and displaying scores associated with thegames associated with such super-emoticons.

Limited Use Super-Emoticons

According to one embodiment, per-user usage restrictions may beassociated with super-emoticons. For example, a user may “subscribe” toa super-emoticon for a particular time period. During that time period,the messenger system generates the super-emoticon whenever the userenters a particular series of text characters. After that time period,the messenger system generates something else when the user enters theparticular series of text characters. The “something else” may be thetext character themselves, a conventional smiley, or a differentsuper-emoticon.

The use limitations associated with a super-emoticon may be use based,rather than time-based. For example, a user may purchase fifty uses of aparticular super-emoticon. In response to the purchase, a “uses-left”value stored for the user for that particular super-emoticon may be setto 50. Each time the messenger system generates the particularsuper-emoticon for the user, the uses-left value may be decremented.When the uses-left value reaches zero, the messenger system no longergenerates the particular super-emoticon for that particular user.

Super-Emoticon Power Levels

As mentioned above, super-emoticons may be associated with one or morebehaviors, where the behaviors may depend on a variety of factors suchas which user caused generation of the super-emoticon, what otherelements existed on the screen or in the conversation with thesuper-emoticon, how long the subscription to the super-emoticon has beenin place, etc.

According to one embodiment, in addition to behaviors, super-emoticonsare also associated with a power level. The power level associated witha super-emoticon may affect interactions between the super-emoticon andother elements. For example, consider a super-emoticon that has abehavior of pushing the conversation window around on the screen. If the“pushing” behavior is associated with a relatively low power level, thenthe super-emoticon may only be able to push the conversation window asmall distance, or very slowly. On the other hand, if the “pushing”behavior is associated with a relatively high power level, then thesuper-emoticon may be able to push the conversation window a longdistance, or very quickly.

As another example, when the super-emoticons of two users are competing(e.g. dueling, etc.), the relative power levels associated with thesuper-emoticons may be used as a factor in determining whichsuper-emoticon “wins”. For example, a ninja emoticon associated withpower level 5 may have only a 25% change of beating a ninja emoticonassociated with power level 10.

Power level information may be stored on a per-user basis, aper-user/per-super-emoticon basis, or aper-user/per-super-emoticon/per-behavior basis. When stored on aper-user basis, the power level associated with a particular user isapplied to all super-emoticons generated by the particular user. Whenstored on a per-user/per-super-emoticon basis, the same user may havedifferent power levels for different super-emoticons. When stored on aper-user/per-super-emoticon/per-behavior basis, the same user may havedifferent power levels for different behaviors of the samesuper-emoticon.

Synergistic Super-Emoticons

According to one embodiment, super-emoticons have synergisticrelationships with other super-emoticons. For example, if asuper-emoticon X is displayed in a conversation that has no othersuper-emoticon, super-emoticon X may exhibit only one behavior. However,if the same conversation also includes a super-emoticon Y, thensuper-emoticon X may exhibit three behaviors. If super-emoticon Y and Zare present, then super-emoticon X may exhibit five behaviors.

In the example given above, synergistic effects were triggered by thepresence of other super-emoticons within the same conversation. However,the synergistic effects may be triggered in other ways. For example,synergistic effects may be triggered based on subscriptions. Forexample, if a user is only subscribed to use super-emoticon X,super-emoticon X may have only one behavior. However, when that usersubscribes to super-emoticon Y, then super-emoticon X (when generated bythat user) may exhibit three behaviors. When that user also subscribesto super-emoticon Z, then super-emoticon (when generated by that user)may exhibit five behaviors.

Different synergies may exist between different super-emoticons. Forexample, super-emoticon X may exhibit behavior A when displayed alone,behaviors A and B when displayed with super-emoticon Y, and behaviors Aand C when displayed with super-emoticon Z. Super-emoticons may belongto “sets”, where each member of the “set” inherits a “set bonus” whenthe super-emoticon is owned and/or used with other members of the sameset.

The synergies described above are behavior-based synergies. However,synergies may also affect the power-level of super-emoticons. Forexample, purchasing a subscription to super-emoticon Y may not givesuper-emoticon X any additional behaviors, but it may increase the powerlevel associated with the behaviors of super-emoticon X. Thus,super-emoticons can become generally “stronger” as a user subscribes toand/or uses other super-emoticons.

Service-Based Super-Emoticons

According to one embodiment, super-emoticons may make use of informationobtained by services external to the messaging system. For example, asuper-emoticon may represent a “fan” of a particular professional sportsteam. When the instant messaging system receives user input that callsfor generation of the super-emoticon, the instant messaging system mayissue a request to a service that provides sports scores to obtain thefinal score of the most recent game of that sports team (or the currentscore, if a game is in progress). After obtaining the score from theexternal service, the messaging system may incorporate the score intothe display of the super-emoticon. For example, if the team representedby the super-emoticon is ahead in the score, then the super-emoticon maybe jumping with joy waving a banner that displays the score. On theother hand, if the team represented by the super-emoticon is behind inthe score, then the super-emoticon may be angrily throwing watermelonsat a scoreboard that displays the score.

A sports score service is merely one example of an external service uponwhich the appearance and/or behavior of a super-emoticon may be based.As another example, a super-emoticon may be designed with logic toretrieve, from a weather service, weather information that is local toeach of the participants in the conversation. The super-emoticon maythen display the appropriate weather information to each of theparticipants.

On the other hand, the logic associated with the super-emoticon may bedesigned to retrieve, from the weather service, weather information thatis local to the user that is causing the super-emoticon to be displayed.The user may use such a super-emoticon, for example, to display to otherparticipants in the conversation the user's own local weather.

The techniques described herein on not limited with respect to the typesof service/information that is retrieved and used by super-emoticons,nor with respect to how the super-emoticons use the information thusretrieved. In some cases, the information retrieved from externalservices may not be directly displayed, but may nonetheless affect theappearance and/or behavior of the super-emoticon. Other super-emoticonsmay provide user interface controls that allow users to accessinformation/functionality provided by external services, such asvoice-over-IP services, shopping services, and software downloadservices.

Some super-emoticons may obtain advertising information from ad servers,and present the advertising information when generated. Users whogenerate such advertisement super-emoticons may receive some form ofcompensation in response to other participants of the conversationclicking on the super-emoticon to obtain further information about anadvertised product. The compensation may be monetary, or in the form ofsubscriptions to additional super-emoticons.

Programmable Super-Emoticons

According to one embodiment, users may be provided a user-interface thatallows the user to specify the behavior of the super-emoticon. Theuser-interface may simply allow a user to specify one, or a sequence, ofavailable behaviors. Alternatively, the user-interface may be a text boxthat allows a user to specify complex behaviors using a scriptinglanguage.

Super-Emoticon Metadata

Referring to FIG. 1, it is a block diagram that illustrates metadatathat is associated with a super-emoticon according to an embodiment ofthe invention. The metadata may include per-emoticon information andper-user/per-emoticon information.

The per-emoticon information generally represents metadata that appliesto a super-emoticon regardless of who is using the super-emoticon. Theper-emoticon information may include, for example, a super-emoticon ID100, a name 102, and an indication of the super-emoticon sets 104 towhich the super-emoticon belongs.

The per-emoticon information may also include information that definesthe behaviors 106 of the super-emoticon. The behavior 106 may includecode which, when executed, implements the behavior of thesuper-emoticon. In this context, behavior refers to all aspects of thesuper-emoticon, including appearance, movement, and interactivityfeatures. The code that implements the behavior may be executable code,executable scripts, binary code, etc. The same behavior may havedifferent code implementations for different platforms.

The per-emoticon information may also include subscription terms 108,and the trigger string(s) 110 of the super-emoticon. As explained above,the subscription terms may be time-based or use based. Subscriptionterms may also specify conditions of use. For example, a particularsuper-emoticon may be free for all to use, but may only be used betweenthe hours of 1 am and 3 am.

The per-user/per-emoticon information generally represents information,maintained by the messaging system, for each user, for eachsuper-emoticon to which the user is subscribed. For example, theper-user/per-emoticon information may include the super-emoticon ID 150of each super-emoticon to which the user is subscribed. Theper-user/per-emoticon information may also include the subscription type152, the start date for the subscription 154, the power level 156 of thesuper-emoticon, per-behavior power-levels 158, and scores/statistics160. Scores/statistics 160 generally represents any information that is(a) generated in response to using the super-emoticon, and (b) isintended to persist between uses of the super-emoticon. For example,scores/statistics 160 may indicate the ending state of the last use ofthe super-emoticon. The ending state information may be used to begin asubsequent use of the super-emoticon in the same state in which the lastuse of the super-emoticon ended. Score/statistics 160 may also be usedto store the win/loss ratio of super-emoticons that compete with othersuper-emoticons. Score/statistics 160 may also store a “high score” foran emoticon that has game-like functionality.

The various types of metadata illustrated in FIG. 1 are merely examplesof the types of metadata that may be maintained by a messaging systemthat implements super-emoticons. However, the actual types of metadatamay vary from implementation to implementation, and from super-emoticonto super-emoticon. For example, some implementations of super-emoticonsmay not make use of power-levels. In such an implementation, theper-user/per-emoticon information would not include power level 156information, or per-behavior power-level 158 information.

Message System Operation

Referring to FIG. 2, it is a flowchart illustrating steps performed by amessage system according to an embodiment of the invention. At step 200,the message system receives input from a user involved in a textconversation. Typically, the input would be in the form of textsubmitted through the interface provided by a message system client.

At step 202, the message system server determines whether the textincludes a trigger string for a super-emoticon. If the text does notinclude a trigger string, then control passes to step 210 where thenon-trigger-string text is displayed in the conversation windows ofmessaging clients that are participating the text conversation.

It should be noted that, depending on the sophistication of themessaging system, various additional steps may occur before step 210.For example, if the messaging system supports conventional smileys, thenthe messaging system server may replace emoticons within the text withsmileys. As another example, the messaging system may add controls,special formatting, hyperlinks, etc. to the text prior to displaying thetext in the conversation windows of the participating messaging clients.

If the text includes a trigger string for a super-emoticon, then controlproceeds to step 204. At step 204, the messaging system serverdetermines whether the user that submitted the text is subscribed to thesuper-emoticon associated with the trigger-string. If the user is notsubscribed to the super-emoticon, then control passes to step 210.Otherwise, control passes to step 206.

At step 206, the messaging system determines the appropriate behaviorfor the super-emoticon. As described above, the appropriate behavior(including power level, appearance, etc.) may be determined by a varietyof factors including what other content is present in the conversation,what other content is on the screen of each user, how long the user hassubscribed to the super-emoticon, what other super-emoticons the userhas subscriptions to, the results of a random number generationoperation, etc.

At step 208, the super-emoticon, with the behavior determined in step206, is generated by the participating messaging clients. At step 210the non-trigger-string text is displayed in the conversation window ofparticipating messaging clients.

Hardware Overview

FIG. 3 is a block diagram that illustrates a computer system 300 uponwhich an embodiment of the invention may be implemented. Computer system300 includes a bus 302 or other communication mechanism forcommunicating information, and a processor 304 coupled with bus 302 forprocessing information. Computer system 300 also includes a main memory306, such as a random access memory (RAM) or other dynamic storagedevice, coupled to bus 302 for storing information and instructions tobe executed by processor 304. Main memory 306 also may be used forstoring temporary variables or other intermediate information duringexecution of instructions to be executed by processor 304. Computersystem 300 further includes a read only memory (ROM) 308 or other staticstorage device coupled to bus 302 for storing static information andinstructions for processor 304. A storage device 310, such as a magneticdisk or optical disk, is provided and coupled to bus 302 for storinginformation and instructions.

Computer system 300 may be coupled via bus 302 to a display 312, such asa cathode ray tube (CRT), for displaying information to a computer user.An input device 314, including alphanumeric and other keys, is coupledto bus 302 for communicating information and command selections toprocessor 304. Another type of user input device is cursor control 316,such as a mouse, a trackball, or cursor direction keys for communicatingdirection information and command selections to processor 304 and forcontrolling cursor movement on display 312. This input device typicallyhas two degrees of freedom in two axes, a first axis (e.g., x) and asecond axis (e.g., y), that allows the device to specify positions in aplane.

The invention is related to the use of computer system 300 forimplementing the techniques described herein. According to oneembodiment of the invention, those techniques are performed by computersystem 300 in response to processor 304 executing one or more sequencesof one or more instructions contained in main memory 306. Suchinstructions may be read into main memory 306 from anothermachine-readable medium, such as storage device 310. Execution of thesequences of instructions contained in main memory 306 causes processor304 to perform the process steps described herein. In alternativeembodiments, hard-wired circuitry may be used in place of or incombination with software instructions to implement the invention. Thus,embodiments of the invention are not limited to any specific combinationof hardware circuitry and software.

The term “machine-readable medium” as used herein refers to any mediumthat participates in providing data that causes a machine to operationin a specific fashion. In an embodiment implemented using computersystem 300, various machine-readable media are involved, for example, inproviding instructions to processor 304 for execution. Such a medium maytake many forms, including but not limited to storage media andtransmission media. Storage media includes both non-volatile media andvolatile media. Non-volatile media includes, for example, optical ormagnetic disks, such as storage device 310. Volatile media includesdynamic memory, such as main memory 306. Transmission media includescoaxial cables, copper wire and fiber optics, including the wires thatcomprise bus 302. Transmission media can also take the form of acousticor light waves, such as those generated during radio-wave and infra-reddata communications. All such media must be tangible to enable theinstructions carried by the media to be detected by a physical mechanismthat reads the instructions into a machine.

Common forms of machine-readable media include, for example, a floppydisk, a flexible disk, hard disk, magnetic tape, or any other magneticmedium, a CD-ROM, any other optical medium, punchcards, papertape, anyother physical medium with patterns of holes, a RAM, a PROM, and EPROM,a FLASH-EPROM, any other memory chip or cartridge, a carrier wave asdescribed hereinafter, or any other medium from which a computer canread.

Various forms of machine-readable media may be involved in carrying oneor more sequences of one or more instructions to processor 304 forexecution. For example, the instructions may initially be carried on amagnetic disk of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 300 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 302. Bus 302 carries the data tomain memory 306, from which processor 304 retrieves and executes theinstructions. The instructions received by main memory 306 mayoptionally be stored on storage device 310 either before or afterexecution by processor 304.

Computer system 300 also includes a communication interface 318 coupledto bus 302. Communication interface 318 provides a two-way datacommunication coupling to a network link 320 that is connected to alocal network 322. For example, communication interface 318 may be anintegrated services digital network (ISDN) card or a modem to provide adata communication connection to a corresponding type of telephone line.As another example, communication interface 318 may be a local areanetwork (LAN) card to provide a data communication connection to acompatible LAN. Wireless links may also be implemented. In any suchimplementation, communication interface 318 sends and receiveselectrical, electromagnetic or optical signals that carry digital datastreams representing various types of information.

Network link 320 typically provides data communication through one ormore networks to other data devices. For example, network link 320 mayprovide a connection through local network 322 to a host computer 324 orto data equipment operated by an Internet Service Provider (ISP) 326.ISP 326 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the“Internet” 328. Local network 322 and Internet 328 both use electrical,electromagnetic or optical signals that carry digital data streams. Thesignals through the various networks and the signals on network link 320and through communication interface 318, which carry the digital data toand from computer system 300, are exemplary forms of carrier wavestransporting the information.

Computer system 300 can send messages and receive data, includingprogram code, through the network(s), network link 320 and communicationinterface 318. In the Internet example, a server 330 might transmit arequested code for an application program through Internet 328, ISP 326,local network 322 and communication interface 318.

The received code may be executed by processor 304 as it is received,and/or stored in storage device 310, or other non-volatile storage forlater execution. In this manner, computer system 300 may obtainapplication code in the form of a carrier wave.

In the foregoing specification, embodiments of the invention have beendescribed with reference to numerous specific details that may vary fromimplementation to implementation. Thus, the sole and exclusive indicatorof what is the invention, and is intended by the applicants to be theinvention, is the set of claims that issue from this application, in thespecific form in which such claims issue, including any subsequentcorrection. Any definitions expressly set forth herein for termscontained in such claims shall govern the meaning of such terms as usedin the claims. Hence, no limitation, element, property, feature,advantage or attribute that is not expressly recited in a claim shouldlimit the scope of such claim in any way. The specification and drawingsare, accordingly, to be regarded in an illustrative rather than arestrictive sense.

What is claimed is:
 1. A method comprising the computer-implementedsteps of: while a plurality of users are participating in aconversation, receiving a trigger string; wherein text of theconversation is displayed within a shared conversation window displayedby at least a first messaging client and a second messaging client;wherein, within the shared conversation window, a sequence in which textis entered determines a position of the text, relative to other text, inthe shared conversation window; wherein the first messaging client andthe second messaging client belong to a messaging system; wherein thetrigger string was submitted through a text input interface provided bythe first messaging client; in response to receiving the trigger stringthrough the text input interface provided by the first messaging client,causing at least (a) the first messaging client and (b) the secondmessaging client to generate an initial display of a string-triggeredvisual image; wherein the initial display of the string-triggered visualimage exhibits at least one of: a behavior that is based, at least inpart, on information obtained, after the trigger string is receivedthrough the text input interface provided by the first messaging client,from a service external to said messaging system, wherein theinformation obtained from the service includes textual data, and thetextual data is obtained by the messaging system without involving thefirst messaging client and the second messaging client; a behavior thatcauses the entire string-triggered visual image to move from a firstposition to a second position, wherein moving from the first position tothe second position changes the position of the entire string-triggeredvisual image relative to other previously-displayed elements of theconversation in the shared conversation window; a behavior that isbased, at least in part, on the presence of one or more other elements,distinct from the string-triggered visual image, displayed by the secondmessaging client, wherein the one or more other elements were displayedby the second messaging client before receiving the trigger stringthrough the text input interface provided by the first messaging client;a behavior that causes the string-triggered visual image to interactwith one or more other elements, distinct from the string-triggeredvisual image, displayed by the first messaging client and secondmessaging client, in a manner that affects the display of the one ormore other elements, wherein the one or more other elements include atleast one of: textual elements of the conversation or anotherstring-triggered visual image, included in the conversation, associatedwith a different trigger string than the trigger string received throughthe text input interface provided by the first messaging client; abehavior that is affected with a power level associated with thestring-triggered visual image; a behavior that is based, at least inpart, on results produced by a pseudo-random number generator; abehavior that is manipulated by user input received through an inputdevice after the trigger string is received through the text inputinterface provided by the first messaging client and thestring-triggered visual image is displayed by the first messaging clientand the second messaging client; or a behavior that is based, at leastin part, on non-image data extracted from a profile maintained by saidmessaging system for a user from whom said trigger string was received;wherein said computer-implemented steps of said method are performed byone or more computing devices.
 2. The method of claim 1 wherein thestring-triggered visual image exhibits a behavior that is based, atleast in part, on information obtained, after the trigger string isreceived through the text input interface provided by the firstmessaging client, from a service external to said messaging system,wherein the information obtained from the service includes textual dataand the textual data is obtained by the messaging system withoutinvolving the first messaging client and the second messaging client. 3.The method of claim 2 wherein the string-triggered visual image visuallydisplays information obtained from the service.
 4. The method of claim 2wherein the string-triggered visual image behaves in a manner that isbased on information obtained from the service without displaying theinformation from the service.
 5. The method of claim 2 furthercomprising obtaining the information from the service based oninformation, maintained by the message system, about the user from whomsaid input was received.
 6. The method of claim 2 further comprisingobtaining the information from the service based on information,maintained by the message system, about a user to whom thestring-triggered visual image is to be displayed.
 7. The method of claim1 wherein the string-triggered visual image exhibits a behavior thatcauses the entire string-triggered visual image to move from a firstposition to a second position, wherein moving from the first position tothe second position changes the position of the entire string-triggeredvisual image relative to other previously-displayed elements of theconversation in the shared conversation window.
 8. The method of claim 7wherein: the input is textual input that includes a trigger string forthe string-triggered visual image; if displayed as text, the triggerstring would be displayed at a particular text emoticon location withinthe conversation; and the string-triggered visual image is initiallydisplayed at a location other than the particular text emoticonlocation.
 9. The method of claim 7 wherein: the input is textual inputthat includes a trigger string for the string-triggered visual image; ifdisplayed as text, the trigger string would be displayed at a particulartext emoticon location within the conversation; and the string-triggeredvisual image is initially displayed at the particular text emoticonlocation, and then moves to a location other that the particular textemoticon location.
 10. The method of claim 7 wherein: the at least onemessaging client displays the conversation in a shared conversationwindow that is displayed by a display device; and the string-triggeredvisual image is displayed at or moves to a position on the displaydevice that is outside the shared conversation window.
 11. The method ofclaim 1 wherein the string-triggered visual image exhibits a behaviorthat is based, at least in part, on the presence of one or more otherelements, distinct from the string-triggered visual image, displayed bythe second messaging client, wherein the one or more other elements weredisplayed by the second messaging client before receiving the triggerstring through the text input interface provided by the first messagingclient.
 12. The method of claim 11 wherein the behavior changes acharacteristic of a window on a display screen.
 13. The method of claim12 wherein the characteristic is one of size or location.
 14. The methodof claim 11 wherein: the string-triggered visual image is a firststring-triggered visual image; and the one or more other elements is asecond string-triggered visual image that is generated as part of saidconversation.
 15. The method of claim 14 wherein the behavior includesinteracting with said second string-triggered visual image.
 16. Themethod of claim 15 wherein the second string-triggered visual image isassociated with a behavior that causes the second string-triggeredvisual image to interact with said first string-triggered visual image.17. The method of claim 11 wherein the one or more other elementsincludes text displayed in a display screen.
 18. The method of claim 17wherein the string-triggered visual image interacts with text that isdisplayed as part of said conversation.
 19. The method of claim 1wherein the string-triggered visual image exhibits a behavior that isbased, at least in part, on results produced by a pseudo-random numbergenerator.
 20. The method of claim 1 wherein the string-triggered visualimage exhibits a behavior that is manipulated by user input receivedthrough an input device after the trigger string is received through thetext input interface provided by the first messaging client and thestring-triggered visual image is displayed by the first messaging clientand the second messaging client.
 21. The method of claim 20 whereinmovement of said string-triggered visual image is affected bymanipulation of a user input device.
 22. The method of claim 20 whereinthe string-triggered visual image includes user interface logic forreceiving input.
 23. The method of claim 22 wherein the messaging systemstores data, in association with a particular user, based on saidparticular user's interaction with said string-triggered visual image.24. The method of claim 1 wherein the string-triggered visual imageexhibits a behavior that is based, at least in part, on non-image dataextracted form a profile maintained by said messaging system for a userfrom whom said trigger string was received.
 25. The method of claim 24wherein the behavior is based, at least in part, on how long the userhas subscribed to said string-triggered visual image.
 26. The method ofclaim 24 wherein the behavior is based, at least in part, on the user'ssubscriptions to other visual images.
 27. The method of claim 26 whereinthe behavior is exhibited in response to said user owning one or moreother visual images that belong to a set to which said string-triggeredvisual image belongs.
 28. The method of claim 1 wherein the triggerstring is associated with a convention smiley combined with one or moreadditional textual characters.
 29. A method for facilitatingcommunications between participants, comprising the computer-implementedsteps of: receiving, from a particular user, through a messaging client,input text for a conversation; determining that said input text includesa trigger-string associated with a visual image that exhibits aparticular behavior; determining that said user is subscribed to usesaid visual image; wherein a subscription defines at least one of (a) aperiod of time during which the trigger string may be used, through themessaging client, to cause display of the visual image that exhibits theparticular behavior or (b) a number of uses of the trigger-string,through the messaging client, to cause display of the visual image thatexhibits the particular behavior; wherein determining that said user issubscribed to use said visual image comprises: if said subscriptiondefines a period of time that said user may use said visual image,determining that said period of time has not lapsed; if saidsubscription defines a number of uses that said user may use said visualimage, determining that said number of uses has not been expended; inresponse to determining that said user is subscribed to use said visualimage, causing one or more messaging clients that are participating insaid conversation to generate said visual image; and wherein saidcomputer-implemented steps of said method are performed by one or morecomputing devices.
 30. A non-transitory computer-readable storage mediumstoring one or more sequences of instructions which, when executed byone or more processors, causes the one or more processors to performoperations comprising: while a plurality of users are participating in aconversation, receiving a trigger string; wherein text of theconversation is displayed within a shared conversation window displayedby at least a first messaging client and a second messaging client;wherein, within the shared conversation window, a sequence in which textis entered determines a position of the text, relative to other text, inthe shared conversation window; wherein the first messaging client andthe second messaging client belong to a messaging system; wherein thetrigger string was submitted through a text input interface provided bythe first messaging client; in response to receiving the trigger stringthrough the text input interface provided by the first messaging client,causing at least (a) the first messaging client and (b) the secondmessaging client to generate an initial display of a string-triggeredvisual image; wherein the initial display of the string-triggered visualimage exhibits at least one of: a behavior that is based, at least inpart, on information obtained, after the trigger string is receivedthrough the text input interface provided by the first messaging client,from a service external to said messaging system, wherein theinformation obtained from the service includes textual data, and thetextual data is obtained by the messaging system without involving thefirst messaging client and the second messaging client; a behavior thatcauses the entire sting-triggered visual image to move from a firstposition to a second position, wherein moving from the first position tothe second position changes the position of the entire string-triggeredvisual image relative to other previously-displayed elements of theconversation in the shared conversation window; a behavior that isbased, at least in part, on the presence of one or more other elements,distinct from the string-triggered visual image, displayed by the secondmessaging client, wherein the one or more other elements were displayedby the second messaging client before receiving the trigger stringthrough the text input interface provided by the first messaging client;a behavior that causes the string-triggered visual image to interactwith one or more other elements, distinct from the string-triggeredvisual image, displayed by the first messaging client and secondmessaging client, in a manner that affects the display of the one ormore other elements, wherein the one or more other elements include atleast one of: textual elements of the conversation or anotherstring-triggered visual image, included in the conversation, associatedwith a different trigger string than the trigger string received throughthe text input interface provided by the first messaging client; abehavior that is affected with a power level associated with thestring-triggered visual image; a behavior that is based, at least inpart, on results produced by a pseudo-random number generator; abehavior that is manipulated by user input received through an inputdevice after the trigger string is received through the text inputinterface provided by the first messaging client and thestring-triggered visual image is displayed by the first messaging clientand the second messaging client; or a behavior that is based, at leastin part, on non-image data extracted from a profile maintained by saidmessaging system for a user from whom said trigger string was received.31. The non-transitory computer-readable storage medium of claim 30wherein the string-triggered visual image exhibits a behavior that isbased, at least in part, on information obtained, after the triggerstring is received through the text input interface provided by thefirst messaging client, from a service external to said messagingsystem, wherein the information obtained from the service includestextual data and the textual data is obtained by the messaging systemwithout involving the first messaging client and the second messagingclient.
 32. The non-transitory computer-readable storage medium of claim31 wherein the string-triggered visual image visually displaysinformation obtained from the service.
 33. The non-transitorycomputer-readable storage medium of claim 31 wherein thestring-triggered visual image behaves in a manner that is based oninformation obtained from the service without displaying the informationfrom the service.
 34. The non-transitory computer-readable storagemedium of claim 31 further comprising obtaining the information from theservice based on information, maintained by the message system, aboutthe user from whom said input was received.
 35. The non-transitorycomputer-readable storage medium of claim 31 further comprisingobtaining the information from the service based on information,maintained by the message system, about a user to whom thestring-triggered visual image is to be displayed.
 36. The non-transitorycomputer-readable storage medium of claim 30 wherein thestring-triggered visual image exhibits a behavior that causes the entirestring-triggered visual image to move from a first position to a secondposition, wherein moving from the first position to the second positionchanges the position of the entire string-triggered visual imagerelative to other previously-displayed elements of the conversation inthe shared conversation window.
 37. The non-transitory computer-readablestorage medium of claim 36 wherein: the input is textual input thatincludes a trigger string for the string-triggered visual image; ifdisplayed as text, the trigger string would be displayed at a particulartext emoticon location within the conversation; and the string-triggeredvisual image is initially displayed at a location other than theparticular text emoticon location.
 38. The non-transitorycomputer-readable storage medium of claim 36 wherein: the input istextual input that includes a trigger string for the string-triggeredvisual image; if displayed as text, the trigger string would bedisplayed at a particular text emoticon location within theconversation; and the string-triggered visual image is initiallydisplayed at the particular text emoticon location, and then moves to alocation other that the particular text emoticon location.
 39. Thenon-transitory computer-readable storage medium of claim 36 wherein: theat least one messaging client displays the conversation in a sharedconversation window that is displayed by a display device; and thestring-triggered visual image is displayed at or moves to a position onthe display device that is outside the shared conversation window. 40.The non-transitory computer-readable storage medium of claim 30 whereinthe string-triggered visual image exhibits a behavior that is based, atleast in part, on the presence of one or more other elements, distinctfrom the string-triggered visual image, displayed by the secondmessaging client, wherein the one or more other elements were displayedby the second messaging client before receiving the trigger stringthrough the text input interface provided by the first messaging client.41. The non-transitory computer-readable storage medium of claim 40wherein the behavior changes a characteristic of a window on a displayscreen.
 42. The non-transitory computer-readable storage medium of claim41 wherein the characteristic is one of size or location.
 43. Thenon-transitory computer-readable storage medium of claim 40 wherein: thestring-triggered visual image is a first string-triggered visual image;and the one or more other elements is a second string-triggered visualimage that is generated as part of said conversation.
 44. Thenon-transitory computer-readable storage medium of claim 43 wherein thebehavior includes interacting with said second string-triggered visualimage.
 45. The non-transitory computer-readable storage medium of claim44 wherein the second string-triggered visual image is associated with abehavior that causes the second string-triggered visual image tointeract with said first string-triggered visual image.
 46. Thenon-transitory computer-readable storage medium of claim 40 wherein theone or more other elements includes text displayed in a display screen.47. The non-transitory computer-readable storage medium of claim 46wherein the string-triggered visual image interacts with text that isdisplayed as part of said conversation.
 48. The non-transitorycomputer-readable storage medium of claim 30 wherein thestring-triggered visual image exhibits a behavior that is based, atleast in part, on results produced by a pseudo-random number generator.49. The non-transitory computer-readable storage medium of claim 30wherein the string-triggered visual image exhibits a behavior that ismanipulated by user input received through an input device after thetrigger string is received through the text input interface provided bythe first messaging client and the string-triggered visual image isdisplayed by the first messaging client and the second messaging client.50. The non-transitory computer-readable storage medium of claim 49wherein movement of said string-triggered visual image is affected bymanipulation of a user input device.
 51. The non-transitorycomputer-readable storage medium of claim 49 wherein thestring-triggered visual image includes user interface logic forreceiving input.
 52. The non-transitory computer-readable storage mediumof claim 51 wherein the messaging system stores data, in associationwith a particular user, based on said particular user's interaction withsaid string-triggered visual image.
 53. The non-transitorycomputer-readable storage medium of claim 30 wherein thestring-triggered visual image exhibits a behavior that is based, atleast in part, on non-image data extracted form a profile maintained bysaid messaging system for a user from whom said trigger string wasreceived.
 54. The non-transitory computer-readable storage medium ofclaim 53 wherein the behavior is based, at least in part, on how longthe user has subscribed to said string-triggered visual image.
 55. Thenon-transitory computer-readable storage medium of claim 53 wherein thebehavior is based, at least in part, on the user's subscriptions toother visual images.
 56. The non-transitory computer-readable storagemedium of claim 55 wherein the behavior is exhibited in response to saiduser owning one or more other visual images that belong to a set towhich said string-triggered visual image belongs.
 57. The non-transitorycomputer-readable storage medium of claim 30 wherein the trigger stringis associated with a convention smiley combined with one or moreadditional textual characters.
 58. A non-transitory computer-readablestorage medium storing one or more sequences of instructions which, whenexecuted by one or more processors, causes the one or more processors toperform operations comprising: receiving, from a particular user,through a messaging client, input text for a conversation; determiningthat said input text includes a trigger-string associated with a visualimage that exhibits a particular behavior; determining that said user issubscribed to use said visual image; wherein a subscription defines atleast one of (a) a period of time during which the trigger string may beused, through the messaging client, to cause display of the visual imagethat exhibits the particular behavior or (b) a number of uses of thetrigger-string, through the messaging client, to cause display of thevisual image that exhibits the particular behavior; wherein determiningthat said user is subscribed to use said visual image comprises: if saidsubscription defines a period of time that said user may use said visualimage, determining that said period of time has not lapsed; if saidsubscription defines a number of uses that said user may use said visualimage, determining that said number of uses has not been expended; inresponse to determining that said user is subscribed to use said visualimage, causing one or more messaging clients that are participating insaid conversation to generate said visual image.